package model

type SortsRequest struct {
	ID     uint   `json:"id"`                                   //
	Name   string `json:"name" v:"name@required|name#name不能为空"` // 分类名
	Status uint   `json:"status"`                               // 状态
}

type SortsResponse struct {
	ID         uint   `json:"id"`         //
	Name       string `json:"name"`       // 分类名
	CreateTime string `json:"createTime"` // 创建时间
	UpdateTime string `json:"updateTime"` // 更新时间
	DeleteTime string `json:"deleteTime"` // 删除时间
	Status     uint   `json:"status"`     // 状态
}

type SortsResponsePage struct {
	List []SortsResponse `json:"datalist"`
	Page Page            `json:"page"`
}

func (sortsRequest SortsRequest) Convert() Sorts {
	sort := Sorts{
		Id:     sortsRequest.ID,
		Name:   sortsRequest.Name,
		Status: sortsRequest.Status,
	}
	return sort
}

func (*SortsResponse) Convert(sort *Sorts) *SortsResponse {
	return &SortsResponse{
		ID:         sort.Id,
		Name:       sort.Name,
		CreateTime: sort.CreateTime.String(),
		DeleteTime: sort.DeleteTime.String(),
		UpdateTime: sort.UpdateTime.String(),
		Status:     sort.Status,
	}
}

func (Sorts) Convert(sorts []Sorts) []SortsResponse {
	var sortsResponse = make([]SortsResponse, len(sorts))
	for i := range sorts {
		sortsResponse[i] = *sortsResponse[i].Convert(&sorts[i])
	}
	return sortsResponse
}

func (Sorts) ConvertPage(sorts []Sorts, page Page) SortsResponsePage {
	var sortsResponse = make([]SortsResponse, len(sorts))
	for i := range sorts {
		sortsResponse[i] = *sortsResponse[i].Convert(&sorts[i])
	}
	return SortsResponsePage{
		List: sortsResponse,
		Page: page,
	}
}
